<?php

/**
 * @desc 请求ERP
 * @author zhangweifeng@shopex.cn 15-7-7 上午11:02
 */
class abiapi_erp_request extends abiapi_erp_rpc {

    /**
     * @desc ：得到erp仓库列表
     * @author jeff 2015/07/10 16:39:04
     * @param 参数类型
     * @return 返回值类型
     */
    public function branch_list($params = array()) {
        $this->task_name = '获取ERP仓库列表'; // api 任务描述
        $request_data = array(
            'method' => 'abi_branch.getList'
        );
        $request_data = array_merge($params, $request_data);
        return $this->erp_caller($request_data);
    }

    /**
     * @desc 获取所有货品和所有ABI仓库的对应列表
     * @author jeff 2015/07/10 16:39:04
     * @param 参数类型
     * @return 返回值类型
     */
    public function get_all_branch_store($params = array()) {
        $this->task_name = '获取所有货品和所有ABI仓库的对应列表';
        $request_data = array(
            'method' => 'abi_branch_product.getList',
        );
        $request_data = array_merge($params, $request_data);
        return $this->erp_caller($request_data);
    }

    /**
     * @desc 获取单一仓库的所有货品库存
     * @author jeff 2015/07/10 16:39:04
     * @param 参数类型
     * @return 返回值类型
     */
    public function get_branch_store($params = array()) {
        $this->task_name = '获取单一仓库的所有货品库存';
        $request_data = array(
            'method' => 'abi_branch_product.getSingleBranch',
        );
        $request_data = array_merge($params, $request_data);
        return $this->erp_caller($request_data);
    }

    /**
     * @desc 获取单一货品在所有ABI仓库的库存
     * @author jeff 2015/07/10 16:39:04
     * @param 参数类型
     * @return 返回值类型
     */
    public function get_product_store($params = array()) {
        $this->task_name = '获取单一货品在所有ABI仓库的库存';
        $request_data = array(
            'method' => 'abi_branch_product.getSingleProduct',
        );
        $request_data = array_merge($params, $request_data);
        return $this->erp_caller($request_data);
    }

    /**
     * @desc ：判断erp上的订单是否允许取消
     * @author jeff 2015/07/13 18:58:08
     * @param 参数类型
     * @return 返回值类型
     */
    public function can_cancel_erp_order($params = array()) {
        $this->task_name = '判断erp上的订单是否允许取消';
        $request_data = array(
            'method' => 'order.can_cancel_erp_order',
        );
        $request_data = array_merge($params, $request_data);
        return $this->erp_caller($request_data);
    }

    /**
     * @desc ：取消erp上的订单,取消的同时，需要产生退款申请
     * @author jeff 2015/07/13 18:58:08
     * @param 参数类型
     * @return 返回值类型
     */
    public function do_cancel_erp_payed_order($params = array()) {
        $this->task_name = '取消erp上的订单';
        $request_data = array(
            'method' => 'order.do_cancel_erp_payed_order',
        );
        $request_data = array_merge($params, $request_data);
        return $this->erp_caller($request_data);
    }

    /**
     * @desc 同步ERP中的形式发票
     * @author Mark 2015-07-20 16:49
     * @param 参数类型
     * @return 返回值类型
     */
    public function get_invoice_proforma($params = array()) {
        $this->task_name = '同步ERP中的形式发票';
        $request_data = array(
            'method' => 'abi_invoice_proforma.getList',
        );
        $request_data = array_merge($params, $request_data);
        return $this->erp_caller($request_data);
    }
    
    /**
     * @desc 同步EC相同账户密码到ERP
     * @author Mark 2015-08-17 12:27
     */
    public function sysn_ec_password($params = array()){
         $this->task_name = '同步EC相同账户密码到ERP';
        $request_data = array(
            'method' => 'abi_users_chkpass.chkPass',
        );
        $request_data = array_merge($params, $request_data);
        return $this->erp_caller($request_data);       
    }
    
    /**
     * @desc 触发式同步通知（通知ERP同步相关信息）
     * @time 2015-08-21 17:31
     * @author Mark
     */
    public function sync_notice($params=array()) {
        $this->task_name = '发送同步通知到ERP，使ERP主动拉取EC数据进行同步';
        $request_data = array(
            'method' => 'abi_sync_notice.triggerSync',
        );
        //$params['notice_type']='GOODS';
        $request_data = array_merge($params, $request_data);
        if(isset($params['timeout'])){
            $timeout=$params['timeout'];
            unset($params['timeout']);
        }else{
            $timeout=5;
        }
        $this->set_timeout($timeout);
        return $this->erp_caller($request_data);   
    }
    
    
}
